微服務指的是在當代軟件開發生命周期中作為開發人員工具存在的數千種獨立的 Web 標準、編程語言、數據庫平臺和 Web 服務器組件。從傳統的角度來看,企業公司曾經專注于面向服務的架構 (SOA),它代表了從單個 IT 公司集成的硬件和軟件技術。 借助微服務,來自獨立開發公司或開源社區的云軟件應用程序和 Web 服務器支持數以千計的不同組件 。IT 部門需要一種新的理念來跨超大規模公共云中的隔離多租戶環境管理生產中的微服務 數據中心,并已廣泛采用由 服務網格技術驅動的 SDDC 標準的虛擬化解決方案 來解決這個問題。微服務構成了構建塊或基本組件、平臺和框架,代碼在云數據中心的 Web 服務器上構建和運行。
微服務的好處
- 快速創新:當需要為軟件應用程序創建新功能時,企業和初創公司可以比使用單體架構更快地將創新推向市場。使用 Web 和移動應用程序的客戶需要新功能。創新技術通過大眾采用和企業吸收獲得資金。通過集成新的微服務,IT 專業人士和初創公司都可以保持在編程和開發的前沿。
- 更高水平的數據中心自動化:開發人員更喜歡在他們的工作中使用某些平臺或標準,這包括對帶有微服務的 Web/移動應用程序中的編程語言和數據庫的支持。微服務通過 API 等腳本化流程進行連接,從而實現更高水平的數據中心自動化。
單體架構與微服務架構
- 單體架構:傳統上源自IBM大型機時代和微軟Windows OS壟斷企業IT時代。
- 微服務:最初由開源社區、第三方開發人員和由獨立程序員貢獻代碼的初創企業發展而來,這些代碼將擴展正在使用的最流行的 Web 服務器平臺的基本功能。現在,大多數主要的 IT 公司都發布了自己的微服務和對開源項目的貢獻,這些項目的標準在不同的垂直領域和團隊中采用,來自更廣泛的解決方案市場,具有獨特的基礎。微服務通過云應用程序的開源代碼解決方案按照開發人員創新的相同原則運行,盡管專有許可的微服務在今天也很常見。
微服務如何工作?
微服務主要通過在默認操作系統、網絡或數據中心管理平臺提供的功能上增加 Web 服務器上可用的功能來工作。一些微服務是 Web 服務器堆棧擴展,例如編程語言平臺和數據庫框架。為了開發 PHP 和 MySQL 應用程序,Web 服務器環境必須配置 LAMP 平臺支持。基于微服務的解決方案在很大程度上與 Microsoft、Oracle、IBM 和其他 IT 專業人士在閉源發行版中提供的面向服務的架構競爭。企業公司現在必須支持多種 應用程序 用 PHP、Python、Ruby-on-Rails、Java、C++、ASP.net 等在生產環境中串聯或同時編寫。在其他情況下,數據中心可能通過 多租戶硬件上的虛擬機運行多個數據庫框架。必須配置 Web 服務器以支持流媒體的自定義擴展、API 集成,或通過添加用于分析的專有實用程序。每當將所有這些第三方和開源服務加在一起時,它們就等于生產中典型 Web 服務器上的數千個微服務,然后在公共云服務環境中與數百萬超大規模的 VM 相乘。
微服務的歷史
使用微服務這個術語主要是在 Web 2.0 時代之后開發的,因為企業 IT 需要一種新的方式來概念化軟件開發環境,以反映當前的生態系統和最佳實踐。使用微服務開發 Web 和移動應用程序導致數據中心管理員在企業運營中支持的復雜性增加。而不是簡單地與 Oracle、IBM 或 Microsoft 簽訂所有必需的軟件和 數據中心解決方案的合同,公司現在必須在數以百萬計的開源代碼項目中駕馭環境,這些項目為商業用途提供企業級解決方案。許多網絡標準都有來自不同公司的競爭版本。許多編程語言和數據庫在使用中涵蓋相同的功能。每個開發團隊對工具和編程方法都有自己的偏好。在統一的企業 IT 部門內管理云時代的所有這些復雜性導致需要在全球許多復雜組織的專業軟件開發中支持微服務。
了解微服務架構
理解微服務架構的最佳方式是描繪 Web 服務器堆棧中的軟件層。Web 服務器的操作系統可以是 Windows、Linux 或 BSD。網絡上有用于數據中心管理和負載平衡的工具。Web 服務器可以選擇 Apache、IIS、NGINX、Caddy、Tomcat 等。接下來是安裝的編程語言支持層,例如 PHP、ASP.net、Python、Ruby、Perl、Java 和 Go。以下是 MySQL、MSSQL、PostgreSQL 和 MongoDB 等數據庫框架的層。用于緩存實用程序(如 Varnish、Redis、CDN 和優化實用程序)的另一層。其他支持層包括邊緣服務器、無服務器平臺和 AI/ML 集成。在公共云生態系統中,
面向服務的架構 (SOA) 與微服務
面向服務的體系結構 (SOA) 通常來自單個供應商,或者包含一攬子硬件和軟件解決方案,可以針對明確定義的行業需求進行部署。SOA 通過不同的發行版或產品模型支持數據中心、Web 服務器和堆棧層。SOA 在供應商的專有和開源解決方案中都可用。云數據中心與內部私有數據中心以不同的方式管理網絡設備和光纖連接。在軟件開發領域的當前狀態下,創新需要微服務。即使是最大的公司也需要采用微服務來支持敏捷編程團隊將新的 Web/移動應用程序推向市場,其中產品支持可能包括數千個品牌或領域。